À ce stade du cours, nos classes Snail, FastSnail, SlowSnail et BonusSnail ont des propriétés, des méthodes, de l'héritage et du polymorphisme. Le code devient conséquent — il est temps de le documenter proprement.
DocFX est l'outil officiel de Microsoft pour générer automatiquement un site de documentation à partir du code source C#. Il lit les commentaires XML (///) dans le code et produit un site HTML navigable, comme la documentation officielle de .NET elle-même.
Apprendre à :
dotnet --version pour vérifier)Installer DocFX en tant qu'outil global .NET, disponible depuis n'importe quel terminal.
Ouvrez un terminal (PowerShell, cmd, ou le terminal intégré de votre IDE) et exécutez :
dotnet tool update -g docfx
Cette commande installe DocFX globalement (ou le met à jour si déjà installé). Le flag -g signifie global : l'outil sera accessible depuis n'importe quel répertoire.
docfx --version
Vous devriez voir un numéro de version (par exemple 2.78.2).
| Installer le .NET SDK 8.0+ depuis dotnet.microsoft.com |
| Fermer et rouvrir le terminal |
Erreur de permissions | Exécuter le terminal en tant qu'administrateur |
Créer la structure de base du projet DocFX dans votre solution.
.sln ou le dossier du projet)cd chemin/vers/votre/projet
mkdir doc
cd doc
docfx init

| Configuration principale (on va le modifier) |
| Documentation générée automatiquement depuis le code C# |
| Articles écrits manuellement (tutoriels, guides) |
| Page d'accueil du site de documentation |
| Table des matières (navigation du site) |
À partir de là, pour générer la documentation, on peut:
docfx docfx.json
docfx docfx.json --serve

Dans cet onglet, on retrouve la documentation technique du code...
Ajouter des commentaires de documentation XML (///) au code C# pour que DocFX génère une documentation riche.
En C#, les commentaires de documentation commencent par /// (triple slash). L'IDE complète automatiquement le squelette quand vous tapez /// au-dessus d'une classe ou d'une méthode.
/// <summary>
/// Représente un escargot dans la course.
/// Classe de base pour tous les types d'escargots.
/// </summary>
class Snail
{
/// <summary>
/// Nom de l'escargot (immutable).
/// </summary>
public string Name { get; }
/// <summary>
/// Position horizontale de l'escargot sur la piste.
/// </summary>
public int X { get; protected set; }
/// <summary>
/// Énergie de l'escargot, toujours entre 10 et 100.
/// </summary>
public int Energy
{
get { return _energy; }
protected set { /* validation */ }
}
/// <summary>
/// Crée un nouvel escargot avec un nom, une couleur et une position.
/// </summary>
/// <param name="name">Le nom de l'escargot.</param>
/// <param name="color">La couleur d'affichage.</param>
/// <param name="x">La position horizontale initiale.</param>
/// <param name="y">La position verticale initiale.</param>
public Snail(string name, ConsoleColor color, int x, int y)
{
// ...
}
/// <summary>
/// Déplace l'escargot. Les classes dérivées peuvent redéfinir ce comportement.
/// </summary>
/// <param name="dx">Déplacement horizontal.</param>
/// <param name="dy">Déplacement vertical.</param>
public virtual void Move(int dx, int dy)
{
X = X + dx;
Y = Y + dy;
}
/// <summary>
/// Réduit l'énergie de l'escargot.
/// L'énergie ne descend jamais en dessous de 10.
/// </summary>
/// <param name="amount">La quantité d'énergie à retirer.</param>
public void ReduceEnergy(int amount)
{
Energy = Energy - amount;
}
}
/// <summary>
/// Escargot rapide : avance deux fois plus vite que la normale.
/// </summary>
class FastSnail : Snail
{
/// <summary>
/// Crée un escargot rapide.
/// </summary>
public FastSnail(string name, ConsoleColor color, int x, int y)
: base(name, color, x, y)
{
}
/// <summary>
/// Avance en doublant la distance horizontale.
/// </summary>
public override void Move(int dx, int dy)
{
base.Move(dx * 2, dy);
}
}
| Description courte de l'élément |
|
| Décrit un paramètre |
|
| Décrit la valeur de retour |
|
| Remarques supplémentaires |
|
| Exemple d'utilisation |
|
| Lien vers un autre élément |
|
Dans Visual Studio ou Rider, tapez /// au-dessus d'une méthode et appuyez sur Entrée. L'IDE génère automatiquement le squelette avec les balises <summary> et <param> déjà remplies.
Éditer index.md pour personnaliser la page d'accueil de votre documentation :
# Course d'Escargots — Documentation
Bienvenue dans la documentation du projet **Course d'Escargots**.
## Classes principales
- **Snail** : Classe de base pour tous les escargots
- **FastSnail** : Escargot rapide (avance 2x)
- **SlowSnail** : Escargot lent (s'arrête si fatigué)
- **BonusSnail** : Escargot à bonus aléatoires
## Pour commencer
Consultez la section [API Documentation](api/index.md)
pour voir le détail de chaque classe.
Créez un fichier dans docs/, par exemple architecture.md :
# Architecture du projet
Le projet utilise l'**héritage** pour spécialiser les escargots.
## Hiérarchie de classes
- `Snail` (classe de base)
- `FastSnail` — avance 2x plus vite
- `SlowSnail` — s'arrête si énergie ≤ 30
- `BonusSnail` — bonus aléatoire + CollectBonus()
Ajoutez-le à la table des matières dans toc.yml :
- name: Introduction
href: intro.md
- name: Architecture
href: architecture.md
DocFX peut aussi générer un PDF. Cette fonctionnalité nécessite Node.js v20+ installé.
Ajoutez la section pdf dans docfx.json :
{
"build": {
...
},
"pdf": {
"content": [
{
"files": ["api/**.yml", "api/index.md"]
},
{
"files": ["articles/**.md", "articles/**/toc.yml", "toc.yml", "*.md"]
}
],
"dest": "_pdf"
}
}
Puis générez :
docfx pdf docfx.json
Le PDF sera créé dans _pdf/.
Installer DocFX |
| Outil disponible globalement |
Initialiser |
| Crée les fichiers de base |
Configurer | Adapter si besoin | Pointe vers les |
Documenter | Ajouter | Commentaires XML |
Générer + voir |
| Site sur |
PDF (optionnel) |
| PDF dans |
/// (triple slash) avec des balises XML alimentent la docdocfx.json indique où trouver les .csproj_site est du HTML statique prêt à déployer